home *** CD-ROM | disk | FTP | other *** search
Text File | 1999-11-10 | 7.1 KB | 218 lines | [TEXT/ttxt] |
-
- ZZZZZZ Chess 3.3
-
- © G. Weisenekker
- Mac port by Rolf Exner
-
- Released under the Gnu license.
-
- Introduction
-
- ZZZZZZ is a chess program developed by G. Weisenekker and released under
- the GNU licence. This version for the Mac was ported by R. Exner, and is the
- third such version.
-
- As released by G. Wiesenekker, it can be compiled for Unix, DOS, or MAC.
- However it is packaged as a test program for running tests in batch mode,
- and has no real user interface. Most communications is through files -
- files to read the run-time arguments, files to read the starting position,
- files to write test results to.
-
- I have added a simple text-based user interface to permit more normal
- operation as a chess program. I have also added support for the 'CHES'
- Apple Event suite to allow programs like ExaChess to use ZZZZZZ as a
- chess engine. Used in this manner, the chess board is controlled by
- ExaChess and the simple text-based interface of ZZZZZZ is adequate.
-
-
- Changes in release 3.3
-
- ZZZZZZ can now parse ++ for checkmate, 0-0+ etc.
-
-
- Changes in release 3.2
-
- Added support for ExaChess chess engine interface version 2.0 (includes
- setting time controls, analysis, game termination)
-
- Searching can now be terminated by Cmd-period (rather than Option);
- Cmd-period no longer quits ZZZZZZ.
-
-
- ZZZZZZ Commands
-
- If you launch ZZZZZZ by double clicking it, you get a console window into
- which you can type commands. ZZZZZZ will not automatically play a game.
- You need to tell it to 'go' to have it search for a move and play it.
-
- The following commands are available:
-
- <return> (or 'board')
- Display the current board. The board is displayed as follows:
-
- r n b q k b n r
- p p p p p p p p
- . . . . . . . .
- . . . . . . . .
- . . . . . . . .
- . . . . . . . .
- P P P P P P P P
- R N B Q K B N R W
-
- Lower case letters denote Black pieces, upper case letters White pieces.
- The side to move is shown after the last square.
-
- <moves>
- Entering one or more moves, with or without move numbers, will result
- in those moves being applied to ZZZZZZ's board. Moves should be in
- English algebraic notation with correct capitalization (e.g. Nf3 not
- nf3). If move numbers are given ZZZZZZ will take back moves as necessary
- to reset its move counter to the move number entered.
- e.g.
- 1 e4 e5 2 Nf3
- 2... Nc6
-
- - (or 'back')
- Take back the last move
-
- game
- List the moves made since the game started.
-
- go
- Search for the best move and make it. You can force the immediate end to a
- long search by typing Command-period.
-
- help
- Display a summary of available commands
-
- newgame
- Reset the board to the standard starting position
-
- setboard <position>
- Set the board to a custom startup position. <position> is given in Forsyth notation,
- which is a one-line representation of the board, scanned by row starting with a8-h8,
- followed by a7-h7, etc. to a1-h1. For each row, denote Black pieces by prnbqk, White
- pieces by PRNBQK, and empty squares by an integer 1 to 8 (being the number of
- consecutive empty squares). Use a comma or slash to separate rows, and enclose
- the whole string in slashes.
- For example, the standard starting position itself is
- rnbqkbnr,pppppppp,8,8,8,8,PPPPPPPP,RNBQKBNR
-
- A position entered in this way is assumed to have White-to-move, both sides with
- maximum possible castling rights, and no en passant square. To override these
- defaults, append up to three terms to the above string, separated with commas:
- ‘white’ or ‘black’, the castling rights as a 4-character string ‘KQkq’ (White
- kingside, queenside, Black kingside, queenside respectively) with forfeited rights
- replaced by a ‘-’, and the en passant square. For example, after the initial moves
- 1 e4 d5 2 Ke2 de 3 d4, White has lost the right to castle Kingside and Queenside
- and d3 is the en passant square, and so the position is
- rnbqkbnr,ppp1pppp,8,8,3Pp3,8,PPP1KPPP,RNBQ1BNR,black,--kq,d3
-
- set <param> <value>
- Set the named parameter to the value given. ZZZZZZ supports the following
- parameters:
-
- echo
- - if 1, echo a copy of all screen output to the file zzlog
- maxdepth
- - maximum search depth, in ply
- resign
- - if 1, allow ZZZZZZ to resign when in a bad position
- timelimit
- - the time limit in seconds for a search
- usebook
- - if 1, use the opening book; if 0, don’t use the opening book
- verbose
- - if 1, display search progress and stats when searching
-
- e.g. to set the timelimit to 15 seconds response time per move:
- set timelimit 15
-
- show [<param>]
- Show the value of the named parameter, or if no parameter is given, the
- value of all parameters.
-
- quit (or 'q')
- Exit the program
-
-
- Startup file
-
- If there is a file called zzstartup in the same directory as ZZZZZZ, it will
- read this file and process commands in it before fetching commands from
- the console. Use this file to set options such as the default timelimit, or
- a special startup position or partial game.
-
- You can also place a complete test script into this file to have ZZZZZZ
- run the test script with a minimum of user interaction. (You can also
- to this via the Apple Event interface). If the last command in the file
- is quit, then ZZZZZZ will quit without ever requesting input from the
- console.
-
-
- Opening book
-
- The opening book with which ZZZZZZ plays is found in encoded form in the
- resources BOOK 0 (White) and BOOK 1 (Black) in its resource fork.
-
- To create a new book, place the file zzbook.txt in the same directory as
- ZZZZZZ and start ZZZZZZ. When it starts up, it looks for this file, and if
- found, processes it to create a file zzbook into which it puts the BOOK 0 and
- BOOK1 resources. You need to manually paste these resources into ZZZZZZ to
- have it use the newly generated book.
-
- The zzbook.txt file uses the same format as GNUChess, and the supplied file
- is the same as the Nunn book provided with GNUChess3. It is not included in
- this distribution. The format of this book is as follows:
-
- g1f3 b7b5 g2g3 e7e6 a2a4 b5b4 b2b3 c8b7 f1g2 f7f5 c1b2 g8f6 d2d3 b8a6 f3h4
- !
- g1f3 g7g6 g2g3 f8g7 f1g2 e7e5 e2e4 b8c6 d2d3 d7d6 o-o g8e7 b1d2 o-o c2c3 h7h6
- !
- g1f3 f7f5 g2g3 g8f6 f1g2 e7e6 d2d3 f8e7 o-o o-o b1d2 d7d6 e2e4 f5e4
- !
-
- When building the book ZZZZZZ will check whether the entered line results in a
- material loss which is not immediately returned (i.e. a probable gambit). Any such lines
- are rejected.
-
-
- Stats
-
- time=time_used
- stats=ngens, ndos, nevals, nhits, nextends
-
- ngens = number of times the set of moves is generated
- ndos = number of times domove is called on a legal move
- nevals = number of times evaluation routines are called
- nhits = number of times transposition cache holds evaluation instead
- nextends = ??
-
-
- Scripting
-
- ZZZZZZ is scriptable using Apple’s scripting system. Here is a small
- script to demonstrate ZZZZZZ’s scripting capabilities:
-
- tell application "ZZZZZZ"
- new game
- move "1 e4 e5 2 Nf3 Nc6 3 Bb5 a6"
- move "2… Nf6"
- search ""
- end tell
-
-
- Porting Notes
-
- To build the Mac release, you need the following files from the zzzzzz
- distribution:
- zzzzzz.c
- zzzzzz.h
- plus the following files for the Mac port:
- ChessEvents.c
- main.c
- zzglue.c
- Contact R. Exner (r.exner@exachess.com) for a copy of these files.
-
-
-